// src/api/auth.js
import axios from 'axios'

// 创建axios实例，自动添加token
const apiClient = axios.create()

// 请求拦截器：自动添加token
apiClient.interceptors.request.use((config) => {
  const token = localStorage.getItem('token')
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
})

export async function login(payload) {
  const res = await axios.post('/api/login', payload)
  if (res.data && res.data.success) {
    return {
      success: true,
      user: res.data.user || res.data.data
    }
  }
  return { success: false, error: res.data?.message || '登录失败' }
}

export async function getUserInfo() {
  // 由于本地 server 暂未提供独立的用户信息接口，这里直接从本地存储读取
  const userStr = localStorage.getItem('user')
  if (userStr) {
    return { success: true, data: JSON.parse(userStr) }
  }
  // 也可根据实际需求改为请求后端接口
  return { success: false, error: '未登录' }
}

// 获取用户信息（从后端）
export async function getUserProfile() {
  try {
    const res = await apiClient.get('/api/user/profile')
    if (res.data && res.data.success) {
      return { success: true, data: res.data.data }
    }
    return { success: false, error: res.data?.message || '获取用户信息失败' }
  } catch (error) {
    return { 
      success: false, 
      error: error.response?.data?.message || '获取用户信息失败' 
    }
  }
}

// 更新用户信息
export async function updateUserProfile(data) {
  try {
    const res = await apiClient.put('/api/user/profile', data)
    if (res.data && res.data.success) {
      return { success: true, data: res.data.data, message: res.data.message }
    }
    return { success: false, error: res.data?.message || '更新用户信息失败' }
  } catch (error) {
    return { 
      success: false, 
      error: error.response?.data?.message || '更新用户信息失败' 
    }
  }
}

// 上传头像文件
export async function uploadAvatar(file) {
  try {
    const formData = new FormData()
    formData.append('avatar', file)
    
    const res = await apiClient.post('/api/user/avatar', formData, {
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    })
    
    if (res.data && res.data.success) {
      return { success: true, data: res.data.data, message: res.data.message }
    }
    return { success: false, error: res.data?.message || '上传头像失败' }
  } catch (error) {
    return { 
      success: false, 
      error: error.response?.data?.message || '上传头像失败' 
    }
  }
}

export async function logout() {
  // 本地假登出：如果未来有后端登出接口，可在此调用
  return { success: true }
}